我們基本在操作都是最常使用的資料結構就是 map/list
然後map-in-map-out最彈性
所以在來補一些相關的function
map
最常使用的就是取值
假設map是
(def ttt {:test 123 :test2 {:inner 666}})
常用的就是
(:test ttt)
(get ttt :test)
這邊可以帶第三個參數,就是default value
(:test2 ttt "default")
(get ttt :test2 "default")
然後朝狀就使用get-in
(get-in ttt [:test2 :inner])
然後就是update
因為所有東西都是immutable,所以update的方式都是會丟入一個如何更新的 function
然後最終回傳更新過的
(這邊可以改原本物件的值,但先不要使用,等熟悉之後再說)
再來是list
一樣從取值開始
方法有 take
nth
first
second
或是直接使用destructuring做mapping
這邊最容易搞混的是你的資料型態,list/vec,還有你要加的東西的型態
接下來是丟掉 drop
,但這邊要記得immutable!!
所以你可以丟東西,但最終的結果必須有人去接